package com.ruoyi.wms.strategy;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * 订单趋势策略
 * 该接口用于定义业务订单（入库、出库、移库）趋势统计的策略接口，
 * 具体实现类可以根据不同的需求来实现不同的统计方式。
 */
public interface OrderTrendStrategy {
    /**
     * 查询订单趋势统计
     * @param date    统计日期
     * @param granularity 操作类型 0: 按天统计 1: 按月统计 2: 按年统计
     * @param optType 业务类型
     * @return 返回一个包含日期和对应订单数量的列表
     */
    List<Map<LocalDateTime, Integer>> queryTrend(LocalDateTime date, Integer granularity, Integer optType, Integer orderStatus);
    /**
     * 判断是否支持特定的订单类型
     * @param orderType 订单类型 0: 入库 1: 出库 2: 移库
     * @return 如果支持返回true，否则返回false
     */
    boolean supports(Integer orderType);
}
